Médias supplémentaires
Ici vous trouverez des détails sur :
Le média supplémentaire d'un enregistrement Multimédia est stocké dans un répertoire appelé supplementary
sous le répertoire dans lequel l'image principale est stockée sur le serveur EMu. L'emplacement de l'image principale est déterminé par l'entrée de Registre ServerMediaPath (ou en l'absence de cette entrée, l'entrée de Registre ServerPath). L'entrée de Registre contient une liste de chemins à consulter pour localiser le multimédia sur le serveur EMu. Le premier chemin dans l'entrée de Registre est utilisé pour stocker les nouveaux multimédias, tandis que tous les chemins sont recherchés pour localiser les multimédias.
Il existe un cas particulier dans lequel une entrée exec peut être utilisée comme interface entre EMu et un système d'imagerie tiers (voir Intégration de systèmes d'imagerie tiers pour plus de détails). Afin de prendre en charge les médias supplémentaires tout en conservant la même interface avec les systèmes tiers, le filepath fourni aux appels get
, sauvegarder, ping et supprimer peut désormais inclure le répertoire supplémentaire. Par exemple, le filepath transmis à l'appel ping pour une image supplémentaire appelée Image.jpg pour l'enregistrement multimédia avec le NEI 4254 serait le suivant :
4/254/supplementary/Image.jpg
L’appel list devrait désormais retourner non seulement tous les médias dans le dossier qui lui est passé, mais tous les médias dans le répertoire supplémentaire. Par exemple, l’appel list 4/254
peut donner lieu à la réponse suivante :
Status: success
4/254/master.jpg
4/254/master.thumbnail.jpg
4/254/master.300x300.jpg
4/254/supplementary/video.avi
4/254/supplementary/image.tif\
Les médias supplémentaires peuvent être accessibles à partir d’IMu via la colonne virtuelle Supplémentaire dans le module Multimédia. Le code PHP ci-dessous retourne tous les médias supplémentaires pour l'enregistrement Multimédia avec le NEI 965 :
$module = new IMuModule('emultimedia', $session);
$module->findKey(965);
$columns = array
(
'irn',
'supplementary'
);
$result = $module->fetch('start', 0, 1, $columns);
$supplementary = $result->rows[0]['supplementary'];
La structure de données retournée est un tableau (array) dans lequel chaque entrée représente une rangée dans le tableau Supplémentaire. Par exemple :
Array
(
[0] => Array
(
[width] => 468
[usage] => Array
(
[0] => Web,
[1] => Crop,
)
[mimeFormat] => jpeg
[height] => 600
[size] => 31073
[index] => 4
[identifier] => spear head.jpg
[kind] => supplementary
[fileSize] => 31073
[notes] => A cropped image of the spear head.
[mimeType] => image
[md5Sum] => 5a7147c4f27ced997458b8171f2a44a6
[md5Checksum] => 5a7147c4f27ced997458b8171f2a44a6
[supplementary] => 0/007/supplementary/spear head.jpg
)
[1] => Array
(
[width] => 468
[usage] => Array
(
[0] => Web
)
[mimeFormat] => jpeg
[height] => 600
[size] => 27584
[index] => 5
[identifier] => spear handle.jpg
[kind] => supplementary
[fileSize] => 27584
[notes] => A cropped image of the spear handle.
[mimeType] => image
[md5Sum] => ff57b2f343df44c4c8979cfd2d1f45d2
[md5Checksum] => ff57b2f343df44c4c8979cfd2d1f45d2
[supplementary] => 0/007/supplementary/spear handle.jpg
)
)
Pour obtenir une liste filtrée, un filtre peut être ajouté au nom de la colonne. Les filtres sont spécifiés entre parenthèses après le nom de colonne. Il est possible de filtrer sur presque toute valeur qui revient (à l'exception des notes). Donc, si nous voulons seulement les médias supplémentaires avec des images, le segment de code PHP suivant pourrait être utilisé :
$columns = array
(
'irn',
'supplementary(mimeType=image)'
);
Le filtre réduit l'ensemble des supports supplémentaires à seulement ceux qui sont des images. Il est possible de spécifier plusieurs filtres. Par exemple, si vous ne souhaitez que les images JPEG, la construction de colonne suivante pourrait être utilisée :
supplementary(mimeType=image;mimeFormat=jpeg)
ou si vous voulez toutes les images sauf les TIFF :
supplementary(mimeType=image;mimeFormat!=tiff)
ou si vous voulez toutes les images qui ne soient pas des TIFF avec une largeur de plus de 300 pixels :
supplementary(mimeType=image;mimeFormat!=tiff;width>300)
Tous ces filtres rejettent simplement les entrées supplémentaires de l’ensemble des résultats qui ne correspondent pas aux critères spécifiés.
Deux autres opérateurs sont disponibles :
@
^
Si vous ne voulez que l'image qui est la plus proche d’une largeur de 300 pixels, utiliser :
supplementary(mimeType=image;width@300)
Ceci retournera une seule entrée (au plus) : l'image qui est la plus proche de 300 pixels de large (elle peut être plus grande ou plus petite que 300).
Si vous voulez obtenir l'image qui se rapproche le plus, mais soit plus grande que 300 pixels, utiliser :
supplementary(mimeType=image;width^300)
Tous ces filtres retournent les informations associées à la ressource, mais pas la ressource elle-même. Si vous souhaitez aussi la ressource, le script suivant est requis :
supplementary(mimeType=image;width^300){resource:include}
Cela retournera une structure semblable à :
Array
(
[0] => Array
(
[width] => 468
[usage] => Array
(
[0] => Web
)
[mimeFormat] => jpeg
[height] => 600
[size] => 31073
[resource] => Array
(
[width] => 468
[identifier] => spear head.jpg
[file] => Resource id #12
[mimeFormat] => jpeg
[mimeType] => image
[height] => 600
[size] => 31073
)
[index] => 4
[identifier] => spear head.jpg
[kind] => supplementary
[fileSize] => 31073
[notes] => A cropped image of the spear head.
[mimeType] => image
[md5Sum] => 5a7147c4f27ced997458b8171f2a44a6
[md5Checksum] => 5a7147c4f27ced997458b8171f2a44a6
[supplementary] => 0/007/supplementary/spear head.jpg
)
)
Remarquer qu'il y a maintenant une entrée resource
. Cela comprend les informations sur la ressource et surtout comprend un descripteur de fichier ouvert sur le contenu des ressources (attribut file).
Si vous souhaitez que la ressource soit reformaté, vous pouvez spécifier le reformatage de la même manière que vous le pouvez pour la colonne existante resource
. Par exemple, si vous souhaitez que la ressource soit un gif 200x200, utiliser :
supplementary(mimeType=image;width^300){resource:include;format:gif;width:200;height:200}
Cela fonctionne exactement comme avant, mais avec l'image reformaté comme ressource :
Array
(
[0] => Array
(
[width] => 468
[usage] => Array
(
[0] => Web
)
[mimeFormat] => jpeg
[height] => 600
[size] => 31073
[resource] => Array
(
[width] => 156
[identifier] => spear head.gif
[file] => Resource id #12
[mimeFormat] => gif
[mimeType] => image
[height] => 200
[size] => 18917
)
[index] => 4
[identifier] => spear head.jpg
[kind] => supplementary
[fileSize] => 31073
[notes] => A cropped image of the spear head.
[mimeType] => image
[md5Sum] => 5a7147c4f27ced997458b8171f2a44a6
[md5Checksum] => 5a7147c4f27ced997458b8171f2a44a6
[supplementary] => 0/007/supplementary/spear head.jpg
)
)